"\nbars = ['close','open','high','low','avg','volume','market_cap','turnover_ratio','money','ep']\n#收益月偏度计算\nskew = data.groupby('asset').apply(lambda x:x['close'].droplevel('asset').pct_change().resample('M').apply(lambda x:x.skew()))\nskew = skew.stack().swaplevel(0,1)\nskew.name = 'skew'\n\n\n#stddev_diff\nstddev_diff = data.groupby('asset').apply(lambda x:(x['close'].droplevel('asset').pct_change().resample('M').apply(lambda x:x.std())).diff())\nstddev_diff = stddev_diff.stack().swaplevel(0,1)\nstddev_diff.name = 'stddev_diff'\n\n#年度最高价距离计算 1 - close/Max(high,252)\ndistance = data.groupby('asset').apply(lambda x:(1-x['close'] / x['high'].rolling(252).max()).droplevel('asset').resample('M').last())\ndistance =  distance.stack().swaplevel(0,1)\ndistance.name = 'distance'\n\n\n#行情数据降至月频率\nbar_monthly = bar_resample(data[bars],frequency='M')\n\n# 不同month动量(非累计收益)\nmom =  [bar_monthly.groupby('asset').apply(lambda x:x['close'].shift(i-1)/x['close'].shift(i)-1).droplevel(0) for i in range(1,13)]\nmom = pd.concat(mom,axis=1)\nmom.columns = ['mom%dM' % i for i in range(1,13)]\n\n# 2月month动量(累计收益)\nMom2M =  bar_monthly.groupby('asset').apply(lambda x:x['close']/x['close'].shift(2)-1).droplevel(0)\nMom2M.name = 'Mom2M'\n\n\n#3month turnover\nturnover3M =  bar_monthly.groupby('asset').apply(lambda x:x['turnover_ratio'].rolling(3).sum()).droplevel(0)\nturnover3M.name = 'turnover3M'\n\n\n#过去3 months成交额中位数\nmedian_turnover= bar_monthly['money'].groupby('asset').apply(lambda x:x.rolling(3).median())\nmedian_turnover.name = 'amount3M'\n\n#数据合并对齐\nmerged_data = pd.concat([bar_monthly, skew, distance, mom, Mom2M,turnover3M,median_turnover,stddev_diff],axis=1)\n"

data sample¶

close open high low avg volume market_cap turnover_ratio money ep
date asset
2009-01-31 000001.XSHE 454.96 374.05 476.85 347.08 459.26 25853076.0 324.1281 1.2415 1.045637e+10 0.113239
2009-02-28 000001.XSHE 539.39 459.65 624.59 449.88 539.39 28858156.0 384.2756 0.0000 1.550414e+10 0.095515
2009-03-31 000001.XSHE 623.03 515.94 650.78 507.34 616.39 29455432.0 443.8662 1.1616 1.761660e+10 0.012405
2009-04-30 000001.XSHE 637.88 625.38 673.84 586.29 638.27 20292788.0 454.4477 1.2291 1.285920e+10 0.014442
2009-05-31 000001.XSHE 697.29 642.18 750.45 635.54 691.04 14516574.0 496.7737 1.2501 9.967138e+09 0.013212

1.different momentum¶

  • ic test
mom1M_1M mom2M_1M mom3M_1M mom4M_1M mom5M_1M mom6M_1M mom7M_1M mom8M_1M mom9M_1M mom10M_1M mom11M_1M mom12M_1M
ic_raw ic.mean -0.039399 -0.025225 -0.003760 0.002217 -0.003429 0.003759 0.009115 0.006976 0.002733 -0.011311 0.011199 0.009796
ic.ir -0.340330 -0.246935 -0.042260 0.026266 -0.039796 0.042931 0.122569 0.083234 0.037512 -0.140185 0.157093 0.149051
ic.t-stats -1.223137 -0.887477 -0.151881 0.094399 -0.143027 0.154293 0.440509 0.299142 0.134818 -0.503820 0.564590 0.535686
ic_ind_neu ic.mean -0.046389 -0.023245 -0.006234 0.000009 -0.002668 0.001756 0.005627 0.003429 0.000378 -0.008984 0.003528 0.006945
ic.ir -0.473895 -0.290938 -0.092156 0.000152 -0.042772 0.029371 0.108967 0.058276 0.007497 -0.155148 0.069532 0.157366
ic.t-stats -1.703166 -1.045623 -0.331208 0.000547 -0.153720 0.105559 0.391624 0.209442 0.026944 -0.557597 0.249895 0.565571

Mom2M¶

skew¶

distance¶

turnover3M¶

stddev_diff¶